#include <iostream>
using namespace std;

struct Hero
{
  string name;
  int age;
  string sex;
};

// 排序函数
void sortHero(struct Hero heroList[], int len)
{
  for (int i = 0; i < len - 1; i++)
  {
    for (int j = 0; j < len - i - 1; j++)
    {
      struct Hero hero1 = heroList[j];
      struct Hero hero2 = heroList[j + 1];
      if (hero1.age > hero2.age)
      {
        struct Hero temp = hero1;
        heroList[j] = hero2;
        heroList[j + 1] = temp;
      }
    }
  }
}

// 打印输出
void printInfo(const struct Hero heroList[], int len)
{
  cout << "==============START===============" << endl;
  for (int i = 0; i < len; i++)
  {
    cout << "英雄姓名：" << heroList[i].name << " 英雄年龄：" << heroList[i].age << " 英雄性别：" << heroList[i].sex << endl;
  }
  cout << "==============END===============" << endl;
}

int main()
{
  // 定义英雄数组
  struct Hero heroList[5] = {
      {"刘备", 23, "男"},
      {"关羽", 22, "男"},
      {"张飞", 20, "男"},
      {"赵云", 21, "男"},
      {"貂蝉", 19, "女"},
  };
  int len = sizeof(heroList) / sizeof(heroList[0]);
  // 原始值输出
  printInfo(heroList, len);
  // 排序
  sortHero(heroList, len);
  // 排序值输出
  printInfo(heroList, len);

  /**
   *==============START===============
  英雄姓名：刘备 英雄年龄：23 英雄性别：男
  英雄姓名：关羽 英雄年龄：22 英雄性别：男
  英雄姓名：张飞 英雄年龄：20 英雄性别：男
  英雄姓名：赵云 英雄年龄：21 英雄性别：男
  英雄姓名：貂蝉 英雄年龄：19 英雄性别：女
  ==============END===============
  ==============START===============
  英雄姓名：貂蝉 英雄年龄：19 英雄性别：女
  英雄姓名：张飞 英雄年龄：20 英雄性别：男
  英雄姓名：赵云 英雄年龄：21 英雄性别：男
  英雄姓名：关羽 英雄年龄：22 英雄性别：男
  英雄姓名：刘备 英雄年龄：23 英雄性别：男
  ==============END===============
   * 
   */
  return 0;
}